import {clearStorage, getStorage, setStorage} from "jh-utils";
import { router as history} from "umi";
import {isEmpty} from "lodash-es";
import {STORAGE_KEY} from "@/globalConfig";

export const isLoginPage = () => {
  let locationHash = window.location.hash.substr(1);
  return 0 === locationHash.indexOf('/user/') || 0 === locationHash.indexOf('/login');
};

export const getUserInfo = () => {
  const userInfo = getStorage(STORAGE_KEY.USER_INFO);
  let locationHash = window.location.hash.substr(1);
  let isLoginP = isLoginPage();

  if (null === userInfo && !isLoginP) { // 没有用户信息且不在登录页，跳转登录页
    clearStorage();
    // 缓存当前页面路由，由于项目用的是 hash 路由，所以就直接截取了页面 URL 的 hash 部分
    setStorage(STORAGE_KEY.TIMEOUT_ROUTE, locationHash);

    // 如果当前应用是在 iframe 中，要调用父级应用的 dealLoginTimeout 方法，让父级应用重新登录。
    if (window.isIframe && window.parent.dealLoginTimeout) {
      window.parent.dealLoginTimeout();
    } else {
      history.replace('/login');
      // window.location.href = window.location.pathname + '#/login'
    }

  } else if (!isEmpty(userInfo) && isLoginP) { // 有用户信息且在登录页，则跳转到首页
    history.replace('/');
    // window.location.href = window.location.pathname;
  }
  return userInfo;
};
